Distributed microcontroller

ABSTRACT

A microcontroller includes a plurality of electronic functional circuits comprising a read-only memory (ROM) and a central processing unit (CPU) and an interconnection circuit. The CPU and the interconnection circuit are disposed in a mobile electronic device and the ROM is disposed outside the mobile electronic device. The interconnection circuit is configured to communicate with the plurality of electronic functional circuits. The communication with the ROM is wireless communication.

CROSS-REFERENCE TO RELATED APPLICATIONS

This is a continuation application of U.S. application Ser. No. 16/844,816, filed Apr. 9, 2020, now issued as U.S. Pat. No. 11,038,544, which is a continuation-in-part application of U.S. application Ser. No. 16/530,069, filed Aug. 2, 2019, now issued as U.S. Pat. No. 10,817,461, which claims priority to French Patent Application No. 1857433, filed on Aug. 10, 2018, which applications are hereby incorporated by reference in their entirety.

TECHNICAL FIELD

The present disclosure concerns microcontrollers and, in particular embodiments, the interconnections of the different functions of a microcontroller.

BACKGROUND

A microcontroller generally is an integrated circuit which gathers the essential electronic functions of a computer, for example: central processing unit or processor, memories (ROM and RAM), and input-output interfaces. The different electronic functions of a microcontroller are generally connected to one another via a bus.

The different interconnects within a microcontroller are formed in wired fashion. Thus, the positioning of the different functions is limited by such interconnects.

Further, the number of functions is limited to the functions integrated on manufacturing of the microcontroller.

SUMMARY

An embodiment overcomes all or part of the disadvantages of usual microcontrollers.

An embodiment provides a microcontroller comprising distinct electronic functions and an interconnection circuit capable of transmitting, in wireless fashion, data between the functions.

According to an embodiment, at least one function comprises a central processing unit and at least one function comprises a memory.

According to an embodiment, the different electronic functions are not interconnected by a wire connection.

According to an embodiment, an electronic function comprises an input/output interface.

According to an embodiment, the input/output interface comprises wire connections with peripherals.

According to an embodiment, the interconnection circuit is a Wi-Fi router.

According to an embodiment, the interconnection circuit comprises a central processing unit, a router, a memory, and a data transmit/receive circuit.

According to an embodiment, a usage mode comprises the steps of: determining the electronic functions which are present; if electronic functions which do not have their configuration characteristics contained in the memory are present, writing their configuration characteristics into the memory of the interconnection circuit; and if electronic functions having their configuration characteristics contained in the memory are absent, erasing their configuration characteristics from the memory of the interconnection circuit.

According to an embodiment, these steps are periodically carried out during the operation of the microcontroller.

According to an embodiment, the period is in the range from approximately 1 ms to approximately 10 s.

According to an embodiment, the usage mode comprises the steps of: determining a program to be executed; determining the electronic functions used by the program; determining whether these electronic functions are available; making these electronic functions inaccessible to other programs; establishing a wireless connection between the electronic functions; and executing the program.

According to an embodiment, each electronic function comprises a data transmit/receive circuit.

According to an embodiment, the interconnection circuit is capable of detecting the addition and/or the removal of electronic functions to and/or from the microcontroller.

According to an embodiment, the interconnection circuit and at least some of the electronic functions are powered in wireless fashion.

According to an embodiment, the interconnection circuit is disposed inside a mobile electronic device.

According to an embodiment, the microcontroller includes a CPU disposed in a mobile electronic device.

According to an embodiment, the microcontroller including the interconnection circuit and the CPU inside the mobile electronic device wirelessly communicates with a ROM disposed outside the mobile electronic device, the ROM also being part of the microcontroller.

According to an embodiment, the microcontroller wireless communicates using 5G.

The foregoing and other features and advantages will be discussed in detail in the following non-limiting description of specific embodiments in connection with the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 schematically illustrates an embodiment of a microcontroller;

FIG. 2 illustrates electronic functional circuits used with an embodiment;

FIG. 3 illustrates in further detail a portion of the microcontroller of FIG. 1;

FIG. 4 schematically illustrates an embodiment of a microcontroller being powered;

FIG. 5 schematically illustrates an embodiment of a microcontroller executing a program;

FIG. 6 illustrates a usage mode of the microcontroller of FIG. 1;

FIG. 7 provides another illustration of a usage mode;

FIG. 8 schematically illustrates an example usage mode of an embodiment microcontroller including in a mobile electronic device;

FIG. 9 schematically illustrates another example usage mode of an embodiment microcontroller including a mobile electronic device; and

FIG. 10 provides an illustration of an application of the example usage modes of FIGS. 8 and 9.

DETAILED DESCRIPTION OF ILLUSTRATIVE EMBODIMENTS

The same elements have been designated with the same reference numerals in the different drawings. For clarity, only those steps and elements which are useful to the understanding of the described embodiments have been shown and are detailed.

The terms “approximately,” “about,” “substantially,” and “in the order of” are used herein to designate a tolerance of plus or minus 10%, preferably of plus or minus 5%, of the value in question.

Unless otherwise specified, when reference is made to two elements connected together, this means that the elements are directly connected with no intermediate element other than conductors, and when reference is made to two elements coupled together, this means that the two elements may be directly coupled (connected) or coupled via one or a plurality of other elements.

System-on-chip (SOC) devices can include radio circuits in the chip. As such, a connected object can include a microcontroller with capacity to process information and a radio circuit. This combination is able to send sometimes data with a very low power consumption. As disclosed herein, functional circuits that include radio capability can be implemented to benefit both manufacturers and the users.

FIG. 1 schematically illustrates an embodiment of a microcontroller 100.

Microcontroller 100 comprises, in the present example, seven distinct electronic functions and one interconnection circuit 116 (INTERCONNECT). More particularly, the functions here comprise two central processing units 102 (CPU1) and 104 (CPU2), two memories 106 (MEM1) and 108 (MEM2), one power supply circuit 110 (POWER), clocks 112 (TIMERS), one input/output interface 114 (PERIPH).

In practice, microcontroller 100 may comprise any number of electronic functions, provided to have at least one data processing unit and at least one memory.

Interconnection circuit 116 is capable of transmitting, in wireless fashion, data between different electronic functions of microcontroller 100. Data means any required signals, be they addresses, actual data, or control signals. Each electronic function of the microcontroller thus comprises a circuit capable of receiving and of transmitting data. Such transmit/receive circuits enable to establish a wireless connection between the different functions, via the interconnection circuit, and are for example compatible with one another.

Power supply circuit no is for example a wireless power supply circuit. The different electronic functions capable of forming part of the microcontroller are then capable of being powered by such a power supply circuit 110.

Memories 106 and 108 are, for example, volatile or non-volatile memories.

Input/output interface 114 is a circuit forming an interface between peripherals, not shown, and microcontroller 100. The peripherals are for example coupled to interface 114 by wire connections 118. Data can thus be transmitted between the peripherals and microcontroller wo via a wire connection, between the peripherals and interface 114, and via a wireless connection, between interface 114 and the functions internal to microcontroller 100.

Each of the electronic functions can be a separately packed integrated circuit chip. With wireless power and communications, the chip does not need pins, which will save cost. In this case, each package would include a wireless power module and a radio module. An example of an interconnection circuit 116 of this microcontroller is shown in FIG. 2.

Electronic functions, capable of operating with interconnection circuit 116, may be added to or removed from the microcontroller at any time and in any number. To achieve this, the functions are placed within the range of interconnection circuit 116.

Circuit 116 is for example, a Wi-Fi router. Other possible examples of circuit 116 include the Internet (e.g. the cloud), a smartphone, a personal computer, a laptop computer, a tablet device, a smart television, as well as other devices capable of wireless communication (e.g. Wi-Fi, Bluetooth, 5G, 4G, NFC, etc.).

Another example of interconnection circuit 116 is described in relation with FIG. 2.

FIG. 2 illustrates in further detail a portion of the microcontroller of FIG. 1.

Circuit 116 (INTERCONNECT) comprises a central processing unit 202 (CPU) for example comprising logic circuits 204 (LOGIC) and a sequencer 205 (SEQUENCER), a memory 206 (MEM), a router 208 (ROUTER), and a radio frequency transmit/receive circuit 210 (RADIO).

Circuit 116 further comprises a power supply circuit, not shown, capable of being powered by wireless power supply circuit 110 (illustrated in FIG. 1).

Router 208 and transmit/receive circuit 210 enable data to be transmitted between the different functions of microcontroller 100.

In various embodiments, the sequencer 205 can be used to discover new components either to be added to or to be removed from the system. The memory 206 can be used to store characteristics of the components in the system, e.g., characteristics of RAM, ROM, peripherals and others. The router 208 can comprise a circuit that receives requests from the CPU to read/write to RAM or peripherals and for all exchanges needed from the program to run. The control logic 204 can be used to select which CPU runs which program found on the different memories and to start and stop program execution in case a part of the system is not available.

The interconnect can be realized with a hardware (HW) ad hoc register-transfer level (RTL) or with a microcontroller based system to deal with most complex cases.

FIG. 3 illustrates functional circuits that include a Core, RAM, two Flash circuits, and a Timer Circuit, which are further described in relation to FIG. 4.

FIG. 4 illustrates an example of the system being powered. Here a wireless power supply 166 is used to wirelessly power the functional circuits, which in the example include—core 153, EEPROM 154, a peripheral 156, an interconnect 158, RAM 160, timers 162 and flash 164.

FIG. 5 illustrates the system of FIG. 4 during functional operation, e.g., when executing a program. As illustrated, the interconnect 158 can communicate with each of the other functions. While not necessary, the wireless charger can simultaneously provide power to the functions.

FIG. 6 illustrates a usage mode of the microcontroller of FIG. 1 comprising an interconnection circuit 116 such as described in relation with FIG. 2.

During a first step 302 (INIT), microcontroller 100 is initialized. The different electronic functions present are activated. In particular, power supply circuit no is set in operation, which enables it to power the other functions. Further, the electronic functions and interconnection circuit 116 are initialized to be ready to operate.

During a step 304 (DETECT FUNCTIONS) subsequent to step 302, interconnection circuit 116 detects the electronic functions present, that is, available for microcontroller 100. Circuit 116 for example detects the electronic functions located within the range of circuit 116.

Circuit 116 then determines, at a step 306 (NEW FUCNTIONS?), whether electronic functions that it had not previously detected, that is, functions having configuration characteristics which are not contained in memory 206, are present. If this is true (branch 308, YES), circuit 116 records, in memory 206, the configuration characteristics of each new function. This corresponds to a step 310 (ADD INFO TO MEM). Configuration characteristics means the characteristics for example enabling to transmit the data, to determine the functions between which data should be transmitted, and to determine whether the functions which are present are sufficient to execute a given program.

For example, in the case where the function is a memory, circuit 116 for example records the type of memory (ROM, RAM, Flash, etc.), the memory size, certain specific addresses, the memory speed, etc. In the case of a memory comprising programs, for example, a non-volatile memory, circuit 116 records the number of programs contained in the memory and the resources, that is, the types and number of electronic functions, used for the execution of the program.

After step 310, as well as in the case where circuit 116 does not detect electronic functions that it had not previously detected (branch 312, NO), circuit 116 determines whether certain functions having their configuration characteristics contained in memory 206 are absent or inaccessible (step 314, MISSING FUNCTIONS?). If such is the case, that is, if some of these functions are no longer present (branch 316, YES), circuit 116 erases the characteristics corresponding to these functions from memory 206 (step 318, REMOVE INFO FROM MEM).

After step 318, as well as in the case where circuit 116 determines that all the functions having their configuration characteristics contained in memory 206 are present and accessible (branch 320, NO), circuit 116 proceeds to the next step (step 322).

As a variation, steps 314 and 318 may be carried out before steps 306 and 310 or may be carried out simultaneously.

Steps 304 to 318 form a set of steps 321. Steps 321 may be repeated during the operation of microcontroller 100. For example, steps 321 are periodically repeated, for example, with a period in the range from approximately 1 ms to approximately 10 s, for example, in the range from approximately 7.5 ms to approximately 4 s. Step 321 is, for example, carried out before each step 322.

Subsequently, circuit 116 determines whether programs attempt to be executed (step 322, PROGRAM TO RUN?), for example on instruction of a central processing unit. Program means any activity of microcontroller wo where data are transmitted between different functions of the microcontroller. Circuit 116 may for example enable simultaneous execution of a plurality of programs.

If no program is to be executed (branch 324, NO), interconnection circuit 116 is in waiting mode. If at least one program is to be executed (branch 326, YES), circuit 116 determines, for example, via logic circuits 204, whether the functions used by this program are present and available (step 328, FUNCTIONS AVAILABLE?). For example, if the program comprises writing or reading data into or from a memory, the functions used are for example a central processing unit and a memory.

If at least one of these functions is not present or is not available (branch 330, NO), circuit 116 proceeds to another program and returns to step 322. If all the functions used by the program are present and available (branch 332, YES), the functions are locked (step 334, LOCK RESOURCES), for example, by logic circuits 204, that is, they are no longer available for other programs which may attempt to use them. As a variation, certain functions may be capable of executing more than one program at a time. Such functions are then considered to be unavailable when they simultaneously execute the maximum number of programs.

Once this step has been carried out, a wireless connection is established, via the transmit/receive circuit 210 and router 208, between the functions used by the program (step 336, CONNECTION BETWEEN FUNCTIONS) and the program is started (step 338, RUN PROGRAM), via logic circuits 204. After the starting of the program, circuit 116 determines whether another program should be executed (step 322).

If a function is removed, for example, if it is no longer within the range of circuit 116 or is turned off, the programs using this function are either redirected to another similar function, or put to wait, or stopped. The configuration characteristics of the programs may for example comprise instructions for such a case.

FIG. 7 provides another representation of the operation of the system with reference to FIG. 2. After the boot, the interconnect starts to scan for components. When a component is found, characteristics of this component are added in the memory 206. For a RAM, for example, the system can store the amount of memory available, the speed, the number of bits and all the necessary information to operate the circuit. In case of ROM, the system could store the same information of the RAM but in addition the number of programs contained to be executed and which resources are needed for each program.

When the system includes at least one program contained in a ROM (or EPROM or equivalent), the control logic 204 will check if all the resources are available. These resources could include a CPU, a RAM and a peripheral, as examples. In the case where all the resources are available for example, the control logic will lock these resources and perhaps make them not available for other programs. In the case of a multitasking CPU, the resources can be shared between programs.

The control logic 204 will add some rules inside the router 208 in order to make a virtual connection between the selected resources. The control logic 204 will enable the selected CPU 202 to start the program. Requests from CPU 202 will pass through the router 208 and the router 208 will send the request to the external component, and vice versa in case of data from an external component this will be routed to the right CPU. The exchange will be the same as in the case of a wired interconnection.

If a component is removed from the system, the corresponding characteristics will be removed from the component memory list. The program or the programs associated with this resource will be put in standby or canceled. If the control logic can find an equivalent resource it can decide to restart the program. This behavior can be put in the characteristic of the program itself and, for example, it could be auto start or wait for a program to start it. In this manner, an auto start program can be like an operating system that reboots in case of error or failure. Other programs can be run by a user just like an app in a smartphone or an installed program in computer system.

An advantage of the described embodiments is that it is possible to form a microcontroller having a number of functions which is not limited by the available space and the number of wire connections. It is thus possible to add, if need be, functions, for example, memories, central processing units, etc.

Another advantage of the described embodiments is that the components may be physically remote from one another. Performance limits are given only by the bandwidth of the interconnect and the wireless power.

Another advantage of the described embodiments is that it is no longer necessary to provide wire connections internal to the microcontroller, which causes a decrease in the manufacturing cost. In an example embodiment, no pins are needed for the core, the EEPROM, the RAM, flash or interconnect. In various embodiments, physical electrical connections would be used only with peripheral chips such as USB, Ethernet, keyboard, graphic card and the like.

Some or all of the electronic functions of embodiment microcontrollers described herein may be integrated and/or included in an electronic device. For example, a user device (e.g. a smartphone, tablet device, smart watch, etc.) may supply various electronic functions of the microcontroller (e.g. CPU, clock(s), interconnection circuit, RAM, ROM, etc.) and still make use of externally located (distributed) electronic functions. The user device may then advantageously gain access to external software (programs, applications, routines, etc.), data, processing power, storage space, and capabilities by virtue of the distributed microcontroller architecture.

A specific example is a user desiring to run a new application on a smartphone. To run the application on the smartphone, the application must be downloaded and installed on the smartphone. The application cannot be run if the smartphone does not have space to store the program. Further, if the application requires resources (processing, memory, sensors, etc.) exceeding the capabilities of the smartphone, the application also cannot be run. Additionally, if the user does not have authority to install the application, then the application cannot be run. In other words, it is not possible to execute software that needs to be run without being installed for any reason.

One conventional solution to this problem is using a web based application where the code is not installed but is downloaded. An interpreter (e.g. Java) may then run it. However, the computer code to be run is still downloaded into the smartphone in this case which still requires additional time to download the code and space to store the code. Another conventional solution to this problem is a web based application where code is run on a server and only the result/image or video is shown to the client (smartphone). However, if there are many connections to the server and/or the physical distance between the smartphone and the server is large then quality is reduced.

The distributed microcontroller architectures described herein may be used to make an externally located ROM containing an application (as well as other electronic functions of a microcontroller) available to the smartphone. The smartphone can then advantageously run the application without downloading any code and without relying on a server to run the application. For example, the CPU(s), power, clock(s), RAM, and interconnection circuit functions of the microcontroller may be included in the smartphone while the ROM is external to the smartphone. Alternatively, some or all of the application may also be run using an external CPU(s).

In this way, the hardware (HW) capabilities of a user device (e.g. smartphone) may advantageously be extended. Another possible benefit is to lower the cost of running a complex application since specific functionality and/or capability can be externally located relative to the user device. With advanced wireless communication technologies, sufficient bandwidth and connection speed may exist to advantageously create a distributed microcontroller using hardware components that are not in the immediate vicinity of the user device.

FIG. 8 schematically illustrates an example usage mode of an embodiment microcontroller including in a mobile electronic device.

Referring to FIG. 8, a mobile electronic device 820 is schematically illustrated. The mobile electronic device 820 includes at least an interconnection circuit of a distributed microcontroller, both of which may be as previously described. The mobile electronic device 820 may be any suitable mobile device such as a smartphone, smartwatch, tablet device, laptop device, etc.

In addition to the interconnection circuit, the mobile electronic device 820 may also include additional functional circuits implemented as electronic circuits which may or may not be separately packaged. For example, the mobile electronic device 820 may include one or more central processing units (CPUs), random-access memories (RAMs), read-only memories (ROMs), clocks, input/output interfaces, power supply circuits, and others. In one embodiment, the mobile electronic device 820 includes a CPU and an interconnection circuit implemented as part of a distributed microcontroller.

In the example usage mode of FIG. 8, the mobile electronic device 820 is physically located in wireless range of at least one nearby ROM. The nearby ROM is externally located relative to the mobile electronic device 820 (e.g. the ROM may be disposed in a nearby electronic device outside the mobile electronic device 820 within wireless range of the interconnection circuit). The nearby ROM may include external software (e.g. application, program, etc.). In one embodiment, the ROM stores a computer program and the CPU is configured to execute the computer program. For example the CPU may execute a program from the nearby ROM as if the ROM were directly connected to the CPU (e.g. without installing it and/or without downloading the program prior to execution).

The interconnection circuit communicates with the nearby ROM using a wireless connection as shown. The wireless connection may be any suitable type of wireless connection. In one embodiment, the wireless connection is a Wi-Fi connection. In another embodiment, the wireless connection is a Bluetooth connection. In still another embodiment, the wireless connection is a 5G connection. The wireless connection may also be proprietary (e.g. use custom radios) in some embodiments.

The interconnection circuit may actively scan to locate, update, use, and cease using available resources (i.e. functional circuits) such as the nearby ROM. The interconnection circuit may also be limited to scanning for particular functional circuits (such as a ROM) or may scan for all functional circuits (including ROMs). This functionality may be static or may be dynamic and may be controlled by a user or device carrier in some cases.

In some embodiments, additional functional circuits such as RAM, CPUs, sensors, and peripherals may be externally provided near or with the nearby ROM. For example, a particular ROM may require considerable computing resources or specific peripherals not found in every mobile electronic device. In this case additional CPUs, RAM, and/or peripherals may be included with the nearby ROM to expand the hardware capabilities of the mobile electronic device. In such cases, the mobile electronic device is by no means limited only to execute a program from the nearby ROM with external CPUs. Rather, external and internal CPUs can simultaneously be used or the mobile electronic device may execute the program with an internal CPU for a variety of reasons (user preference, computational efficiency, etc.).

The combination of the CPU and interconnection circuit in the mobile electronic device 820 with the externally located ROM forms a distributed microcontroller, the details of which are described elsewhere herein. Additional ROMs as well as additional functional circuits may also be included in the distributed microcontroller and may be added and subtracted as the mobile electronic device 820 is moved changing the boundaries of the wireless range of the interconnection circuit.

In one example, the mobile electronic device 820 comprises functional circuits of a fully distributed microcontroller. That is, the interconnection circuit only communicates with the CPU (and any other functional circuits of the distributed microcontroller) using a wireless connection.

In another example, the mobile electronic device 820 comprises functional circuits of a partially distributed microcontroller. Specifically, the CPU (and any other functional circuits of the distributed microcontroller internally located within the mobile electron device 820) communicates with the interconnection circuit using a wired connection. In this case, the interconnection circuit still maintains the wireless communication capability so that externally located functional circuits such as the nearby ROM may be included in the distributed microcontroller.

Of course, the communication scheme within the mobile electronic device 820 is not limited to fully wireless or fully wired communication. Some components (e.g. functional circuits) in the mobile electronic device may be wired to each other (including wired to the interconnection circuit) while others may communicate wirelessly with the interconnection circuit. For example, circuits such as the CPU, RAM, input/output interface, and clock may be wired to the interconnection circuit using a printed circuit board, while additional (and possibly optional) functional circuits are included inside the mobile electronic device 820, but only communicate wirelessly with the interconnection circuit.

As previously described above (such as in reference to FIG. 2, for example) the interconnection circuit may itself include a processing circuit, a router, a memory circuit, and a data transmit/receive circuit and be implemented as a single packaged semiconductor chip.

FIG. 9 schematically illustrates another example usage mode of an embodiment microcontroller including a mobile electronic device.

Referring to FIG. 9, a mobile electronic device 920 is schematically illustrated. The mobile electronic device 920 may be similar to or a specific implementation of other mobile electronic devices described herein such as the mobile electronic device 820 of FIG. 8, for example.

The example usage mode schematically illustrated in FIG. 9, may be similar to that of FIG. 8, except the added functionality of wireless communication with the cloud (e.g. using 5G) is also shown. For example, in addition to creating a distributed microcontroller physically confined to the wireless range of the interconnection circuit in the mobile electronic device 920, a more expansive distributed microcontroller may be created using the internet.

High throughput and low latency wireless connections (e.g. 5G) may advantageously extend the capabilities of the distributed microcontroller to include cloud functionality. The cloud functionality may beneficially extend the hardware capabilities of the mobile electronic device 920. In this way, a distributed microcontroller can advantageously be created with another device (e.g. 5G capable device) locally and/or in the cloud.

In a specific example, the functionality and computational capabilities of a 5G enabled smartphone (mobile electronic device) may be advantageously increased. The smartphone may only have one CPU and rent/pay/borrow additional CPUs, memories, and other hardware and software from the Internet. Functional circuits such as CPUs, RAMs, ROMs and more may be shared at the same way as a web page. The smartphone may act as a client of one or more servers connected to the Internet which have distributed protocol access to emulate CPU/RAM/ROM/etc.

As shown in FIG. 9, the mobile electronic device 920 may have the local functionality of the distributed microcontroller as well as the cloud functionality. For example, the CPU disposed inside the mobile electronic device 920 may execute a computer program located in an externally located ROM disposed in a nearby electronic device within wireless 5G range of the interconnection circuit of the mobile electronic device 920. In this case, the wireless connection may be made using 5G, but not pass through the cloud.

However, the mobile electronic device 920 may also use cloud resources to execute all of portions of a computer program located in a ROM in a physical nearby located or located in the cloud. In this case some communication between the interconnection circuit in the mobile electronic device 920 and the cloud resources (e.g. CPU, ROM, RAM, etc.) would be through the Internet.

FIG. 10 provides an illustration of an application of the example usage modes of FIGS. 8 and 9.

Referring to FIG. 10, a mobile electronic device 1020 is schematically illustrated in a place of interest 1000. The mobile electronic device 1020 may be similar to or a specific implementation of other mobile electronic devices described herein such as the mobile electronic device 820 or the mobile electronic device 920 of FIGS. 8 and 9 respectively.

The place of interest 1000 may be in a location that may benefit from computer programs relating to being in a specific geographical location. For example, the place of interest 1000 may be a park (e.g. theme park such as Disneyland, national park, city park), a museum, an art gallery, a sports arena, a theater, a historical marker, and others. The place of interest 1000 may have specific ROMs in particular locations with the ROMs storing computer programs related to the particular locations.

In the specific case of an art museum, ROMs relating to exhibits (e.g. paintings as illustrated) may be interspersed throughout various rooms in the museum. Art museum patrons that are inside a given room may discover an application (computer program) stored on a nearby ROM using an interconnection circuit inside a mobile electronic device 1020 (smartphone). The application may advantageously belong only to the art museum. Additionally, the application may only exist in that place and not on the Internet.

Potential visitors to the art museum may be inspired to travel to the art museum to gain the benefit of the application. In this way a unique experience may be provided to users through distributed microcontrollers using interconnection circuits inside a mobile electronic device. The unique experience may be restricted to the unique place and without hosting software in the cloud or accessing the Internet.

In addition to places of interest 1000, this application is extendable to vehicles as well. For example, computer programs and/or hardware functionality may be made locally accessible in a similar manner in planes, trains, cars, buses, boats, and any other type of vehicle. Such an application may provide various advantages such as enhanced security, improved user experience, and access to unique locally relevant content that may change depending on the location of the vehicle.

For example, this application may deliver a unique application (e.g. computer program) to users with mobile electronic devices located in both places of interest and vehicles that advantageously provides location-specific branding and/or information without the need to install the application or have an internet connection.

As a specific example of a method that may be used in the above application, an external computer program may be executed by writing configuration characteristics into a memory of an interconnection circuit for a distributed microcontroller, determining the presence of an additional electronic functional circuit within wireless range of the interconnection circuit, updating the configuration characteristics in the memory of the interconnection circuit to include configuration information for the additional electronic functional circuit, and executing the computer program using a CPU.

For example, the distributed microcontroller initially includes a plurality of electronic functional circuits. In order for the distributed microcontroller to function using the plurality of electronic functional circuits, configuration characteristics of the plurality of electronic functional circuits are written into the memory of the interconnection circuit. The plurality of electronic functional circuits includes the CPU. The CPU and/or the interconnection circuit may be included in a mobile electronic device (e.g. smartphone).

The additional electronic functional circuit is configured to wirelessly communicate with the interconnection circuit. In one embodiment, the additional electronic functional circuit is configured to wirelessly communicate with the interconnection circuit using 5G. The interconnection circuit may determine the presence of the additional electronic functional circuit by detecting a wireless signal broadcast by the additional electronic functional circuit.

The additional electronic functional circuit includes a ROM storing the computer program. The program is executed by the CPU by wirelessly transmitting data of the computer program between the CPU and the ROM through the interconnection circuit. As a result, the computer program is advantageously executed without downloading or installing the computer program. For example, the computer program may be executed directly from the ROM.

Additionally, the distributed microcontroller may determine the absence of the additional electronic functional circuit within the wireless range of the interconnection circuit. In response to the absence of the additional electronic functional circuit, the distributed microcontroller may redirect, suspend, or stop execution of the computer program and update the configuration characteristics in the memory of the interconnection circuit. The update may be performed by erasing the configuration information for the additional electronic functional circuit.

As mentioned above, the ROM may be statically located at a place of interest and the computer program may include location-specific information about the place of interest. The CPU may be disposed in a mobile electronic device (e.g. carried by a user in the place of interest). Alternatively, the ROM may be statically located within a vehicle while the CPU is disposed in a mobile electronic device.

Various embodiments with different variations have been described hereinabove. Other variations will occur to those skilled in the art. It should be noted that those skilled in the art may combine various elements of these various embodiments and variations.

Such alterations, modifications, and improvements are intended to be part of this disclosure, and are intended to be within the spirit and the scope of the present invention. Accordingly, the foregoing description is by way of example only and is not intended to be limiting. The present invention is limited only as defined in the following claims and the equivalents thereto. 

What is claimed is:
 1. A method, comprising: detecting a first circuit available to a second circuit, the first circuit comprising a first memory storage, the second circuit comprising a processor and a second memory storage; configuring the second memory storage with a configuration characteristic of the first circuit in response to determining that the second memory storage fails to include a configuration characteristic associated with the second circuit; and directly executing, by the processor, a program stored in the first memory storage without downloading the program and installing the program in the second circuit.
 2. The method of claim 1, wherein the first circuit available to the second circuit comprises the first circuit being in communication range with the second circuit.
 3. The method of claim 1, wherein the configuration characteristic comprises a characteristic enabling transmission of data between the first circuit and the second circuit, a characteristic used to determine which data should be transmitted between the first circuit and the second circuit, a characteristic used to determine whether resources present are sufficient to execute the program, or a combination thereof.
 4. The method of claim 1, further comprising erasing a third configuration characteristic stored in the second memory storage, the erasing in response to determining that a third circuit, associated with the third configuration characteristic, is unavailable to the second circuit.
 5. The method of claim 4, wherein the third circuit being unavailable to the second circuit comprises the third circuit being absent or communicatively inaccessible to the second circuit.
 6. The method of claim 1, further comprising: determining the program to be executed; determining an availability of the first circuit to the second circuit; making the first circuit inaccessible to other programs; and establishing a communication connection with the first circuit.
 7. A first circuit, comprising: a first non-transitory memory storage comprising instructions; and a processor in communication with the first non-transitory memory storage, wherein the instructions, when executed by the processor, cause the processor to: detect a second circuit available to the first circuit, the second circuit comprising a second non-transitory memory storage, configure the first non-transitory memory storage with a configuration characteristic of the second circuit in response to determining that the first non-transitory memory storage fails to include the configuration characteristic of the second circuit, and directly execute a program stored in the second non-transitory memory storage without downloading the program to the first non-transitory memory storage.
 8. The first circuit of claim 7, wherein the second circuit available to the first circuit comprises the second circuit being in communication range with the first circuit.
 9. The first circuit of claim 7, wherein the configuration characteristic comprises a characteristic enabling transmission of data between the first circuit and the second circuit, a characteristic used to determine which data should be transmitted between the first circuit and second circuit, a characteristic used to determine whether resources present are sufficient to execute the program, or a combination thereof.
 10. The first circuit of claim 7, further comprising erasing a second configuration characteristic stored in the first non-transitory memory storage, the erasing in response to determining that a third circuit, associated with the second configuration characteristic, is unavailable to the first circuit.
 11. The first circuit of claim 10, wherein the third circuit being unavailable to the first circuit comprises the third circuit being absent or communicatively inaccessible to the first circuit.
 12. The first circuit of claim 7, wherein the directly executing the program further comprises not installing the program in the first non-transitory memory storage.
 13. The first circuit of claim 7, wherein the instructions further cause the processor to: determine the program to be executed; determine an availability of the second circuit to the first circuit; make the second circuit inaccessible to other programs; and establish a communication connection with the second circuit.
 14. The first circuit of claim 7, wherein the first circuit is located in an electronic device, the first circuit further comprising an interconnection circuit configured to wirelessly communicate with the second non-transitory memory storage using a fifth generation (5G) wireless network, the second non-transitory memory storage physically located external to the electronic device.
 15. A system, comprising: a first circuit comprising a first non-transitory memory storage; a second circuit within communication range of the first circuit, the second circuit comprising: a second non-transitory memory storage comprising instructions, and a processor in communication with the second non-transitory memory storage, wherein the instructions, when executed by the processor, cause the processor to: detect availability of the first circuit to the second circuit; configure the second non-transitory memory storage with a configuration characteristic of the first circuit in response to determining that the second non-transitory memory storage fails to include a configuration characteristic associated with the second circuit; and directly execute a program stored in the second non-transitory memory storage without downloading the program to the second non-transitory memory storage.
 16. The system of claim 15, wherein the second circuit is located in an electronic device, the second circuit further comprising an interconnection circuit configured to wirelessly communicate with the first non-transitory memory storage using a fifth generation (5G) wireless network, the first non-transitory memory storage physically located external to the electronic device.
 17. The system of claim 15, wherein each of the configuration characteristic of the first circuit and the configuration characteristic associated with the second circuit comprise a characteristic enabling transmission of data between the first circuit and the second circuit, a characteristic used to determine which data should be transmitted between the first circuit and second circuit, a characteristic used to determine whether resources present are sufficient to execute the program, or a combination thereof.
 18. The system of claim 15, wherein the instructions further cause the processor to: determine the program to be executed; determine an availability of the first circuit to the second circuit; make the first circuit inaccessible to other programs; and establish a communication connection with the first circuit.
 19. The system of claim 15, wherein the directly executing the program further comprises not installing the program in the first non-transitory memory storage.
 20. The system of claim 15, wherein detecting the availability of the first circuit to the second circuit comprises detecting that resources for executing the program are available to the second circuit. 